#include <iostream>
#include <cstring>
using namespace std;

/*
	构造函数调用的写法
*/

class Cat
{
public:
	Cat(string _name,int _age):name(_name),age(_age)  //name=_name  age=_age
	{
		cout<<"带参数列表的构造函数"<<endl;
	}
	Cat()
	{
		cout<<"无参构造函数被调用"<<endl;
	}
	
	void show()
	{
		cout<<"姓名: "<<name<<endl;
		cout<<"年龄: "<<age<<endl;
	}

private:
	int age;
	string name;
};


int main(int argc,char **argv)
{
	//创建猫的对象--》栈空间
	//Cat c1("阿黄",5);
	//Cat c2; //调用无参构造
	//Cat c3(); //不调用任何构造函数
	
	//搞双标
	//Cat *c4=new Cat;   //调用无参构造
	//Cat *c5=new Cat(); //调用无参构造
	
	//Cat c6=Cat();          //调用无参构造
	//Cat c7=Cat("阿福",4);  //调用带参数的构造
	
	//Cat c8;  //调用无参构造
	//c8=Cat("阿宝",3);  //赋值运算右边创建一个匿名对象，然后匿名对象赋值给左边的c8
	
	Cat c9={"阿花",2};
	Cat c10{"来福",1};
	Cat c11{};

	//c1.show();
	//c8.show();
	return 0;	
}